package com.learn.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author DJJ_F
 * @version 1.0
 * @date 2025/03/04
 * @description 自定义 字段自动填充 处理器
 * 需要@Component
 */
@Component
public class TimeFillHandler implements MetaObjectHandler {
    /**
     * 这个表示每次传入的操作
     * 下面的一个方法表示每次更新的操作
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        /*
        * 三个参数：
        * 1. 填充的属性名
        * 2. 填充的值
        * 3. metaObject 源对象，是固定参数
        * */
        setFieldValByName("createTime", new Date(), metaObject);
        setFieldValByName("updateTime", new Date(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        setFieldValByName("updateTime", new Date(), metaObject);
    }
}
